The present invention relates to a computer framework and method for a business component to retrieve data from a variety of backend datastores using object technology. The invention provides for the creation, retrieval, updating, and deletion of objects in one or more datastores without having to know the vendor specific application programming interfaces (APIs) of the datastores.
In designing a composite, enterprise-wide computing system for a business, it is desirable to divide the system architecture into layers or levels that are independent of ones below it. This is known as multilevel modularity, wherein the functionality of each level is independent of its uses in higher levels and the structure of lower levels. Multilevel modularity is advantageous as it allows for changes to a given level without disturbing other levels.
The business components of a computing system contain the business rules or functionality of a given application, and thus constitute a relatively high level system. In executing an application, business components often have to interact with a lower level datastore to create, retrieve, update, and delete data following processing by the application. Business components ideally are wholly reusable and independent of any underlying data source.
Business components can be programmed to interact directly with a datastore, but this is a burdensome and inflexible process. For example, database vendors each have a unique set of application programming interfaces (APIs) which allow applications to create, retrieve, update, and delete data from the database. Not only do these API's vary by vendor, but they also vary by the type of datastore. The API's for a relational database typically are much different from the API's for an object database, and so on. Thus, the problem is that a business component must contain specific code for each individual datastore accessed by the component. If a datastore is added, deleted, or modified, the business application code must be modified as well.
The current invention addresses the need for an enterprise-level framework and method to isolate higher level systems implementing business applications (herein referred to as business components) from middle level systems (herein referred to as domain objects) accessing persistent data stored in a variety of differing lower-level datastores. The invention provides a single interface for the business component to perform datastore manipulations that might otherwise require multiple separate interfaces. The current invention further addresses the domain objects' need for datastore neutrality and abstraction; their need to be pure in implementation; and their need to be independent of any architectural level including any underlying persistent datastore level.